package com.design.pattern.clinic.creational.freebuilder;

import org.inferred.freebuilder.FreeBuilder;
import org.springframework.lang.Nullable;

import java.util.List;
import java.util.Map;
import java.util.Optional;

@FreeBuilder
public interface Employee {
    String getName();

    int getAge();

    String getDepartment();

    String getRole();

    String getSupervisorName();

    String getDesignation();

    String getEmail();

    long getPhoneNumber();

    Optional<Boolean> getPermanent();

    Optional<String> getDateOfJoining();

    @Nullable
    String getCurrentProject();

    Address getAddress();

    List<Long> getAccessTokens();

    Map<String, Long> getAssetsSerialIdMapping();

    Optional<Double> getSalaryInUSD();



}
